<?php
class AdminController extends My_Controller_Base 
{
	public function init() 
	{
		$this->view->baseUrl = $this->_request->getBaseUrl();
		Zend_Registry::set('baseUrl', $this->_request->getBaseUrl());
		$oSesja = new Zend_Session_Namespace('zalogowanyUzytkownik');
		$this->view->user = $oSesja->oUzytkownik;
	}
	
    public function indexAction() 
    {
    	
    }
    
    public function ruleAction() 
    {
    	$aUzytkownicy = Uzytkownik::pobierzUzytkownikow();
    	
    	$this->view->aUzytkownicy = $aUzytkownicy;
    }
    
    public function addAction() 
    {
		$oFormularz = new UserForm();

		
		// dodawanie lub edycja - akcja
		if( $this->getRequest()->isPost() )
		{
			$aPost = $this->getRequest()->getPost();
			$aPost = $oFormularz->filterPost( $aPost );
			
			// poprawny formularz
			if( $oFormularz->isValid( $aPost ) )
			{			
				// edycja
				if( $iId = $this->getRequest()->getParam('id') )
				{
					$oUzytkownik = new Uzytkownik( $iId );
					$oUzytkownik->edytuj( $aPost );
				}	
				// dodawanie
				else
				{
					$iId = Uzytkownik::dodaj( $aPost );	
				}
				
				$this->_redirect('/admin/rule');
			}
			else
			{
				$oFormularz->populate( $aPost );
				$this->view->error = 'Błędne dane!';	
			}
		}
		
		// dodawanie lub edycja - obsługa formularza
		if( $iId = $this->getRequest()->getParam('id') )
		{
			$sAkcja = 'Edycja';	
			$oUzytkownik = new Uzytkownik( $iId );
			
			$aDane = array(
							'email'	=> $oUzytkownik->getEmail()
						);
						
			$oFormularz->populate($aDane);
		}
		else
		{
			$sAkcja = 'Dodawanie';
		}
		
		$this->view->sAkcja = $sAkcja;
		$this->view->oUserForm = $oFormularz;
    }
    
    public function rightsAction() {
  		$iIdUzytkownika = $this->getRequest()->getParam('id', false);
  		$sDo = $this->getRequest()->getParam('do', false);
  		$iIdZasobu = $this->getRequest()->getParam('zasob', false);
  		
		if($iIdUzytkownika && $iIdZasobu && $sDo == 'give') {
  			Zasob::dodajPrawo(array('id_uzytkownika'=>$iIdUzytkownika, 'id_zasobu'=>$iIdZasobu));
  		}

  		if($iIdUzytkownika && $iIdZasobu && $sDo == 'take') {
  			Zasob::zabierzPrawo($iIdUzytkownika, $iIdZasobu);
  		}
  		
  		if($iIdUzytkownika) {
  			$aDrzewo = array();
  			Zasob::zrobDrzewoDlaUzytkownika($aDrzewo, $iIdUzytkownika, 0);
  			$this->view->drzewo = $aDrzewo;
  			$this->view->iduzytkownika = $iIdUzytkownika;
  		}
    }
    
    public function deleteAction() 
    {
		$iId = $this->getRequest()->getParam('id');
		
		Uzytkownik::usun( $iId );
		
		$this->_redirect( '/admin/rule' );
    }
}
?>